Method and system for suggesting search queries on electronic devices

ABSTRACT

A method and system implementing a process for suggesting search queries on an electronic device is provided. The process involves displaying terms related to content accessed by a user for selection by the user, obtaining one or more key terms related to a user-selected term, and displaying the one or more key terms to the user as query suggestions corresponding to the selected term. Obtaining one or more key terms involves obtaining one or more key terms related to the selected term, based on local content information and/or external content information.

FIELD OF THE INVENTION

The present invention relates to providing information on electronic devices, and in particular to searching for information using consumer electronic (CE) devices.

BACKGROUND OF THE INVENTION

The number of networked electronic devices, such as consumer electronics (CE) in home networks, is on the rise and so is the amount of content and data stored therein. Consumers store and access several types of content (e.g., movies, photos, broadcast television (TV), cable TV programs) on/via such devices in their home networks. Further, the amount of information available on the Internet via the World Wide Web is on the rise.

Given the large amount of content available in a home network and on the Internet, it is very likely that consumers (users) can find extensive information on the Internet related to at least a portion of the data and content stored on their home devices. Moreover, many users are as interested in searching information on the Internet as they are in accessing data and content on their home networks, especially using CE devices which do not provide typical keyboard/mouse input devices.

BRIEF SUMMARY OF THE INVENTION

The present invention provides a method and system for suggesting search queries on an electronic device. In one embodiment this involves displaying terms related to content accessed by a user for selection by the user, obtaining one or more of key terms related to a user-selected term, and displaying the key terms to the user as query suggestions corresponding to the selected term.

Obtaining one or more of key terms may include obtaining one or more terms based on locally available content information and/or information available on external sources. In one implementation, obtaining key terms includes obtaining key terms related to the selected term based on locally available content information, obtaining key terms related to the selected term based on information available on external sources, and aggregating the obtained key terms for display as query suggestions.

These and other features, aspects and advantages of the present invention will become understood with reference to the following description, appended claims and accompanying figures.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows a functional architecture of an example network/system embodying aspects of the present invention.

FIG. 2 shows an architecture in which a related data generator module and a query suggestion module are implemented in an information gathering component, according to an embodiment of the present invention.

FIG. 3 shows a functional block diagram of an example information gathering component for suggesting search queries, according to the present invention.

FIGS. 4A-C show example user interface (UI) screens, according to the present invention.

FIG. 5 shows a flowchart of the steps of an information gathering process, including related data generation and query suggestion, according to an embodiment of the present invention.

FIG. 6 shows a functional block diagram of another example information gathering component for suggesting search queries, according to the present invention.

DETAILED DESCRIPTION OF THE INVENTION

The present invention provides a method and system for suggesting search queries on electronic devices. One embodiment involves suggesting search queries, and assisting users to refine and edit suggested search queries, using electronic devices such as CE devices. Search query suggestion and query refinement are based on user context. Considering the user context allows suggesting and refining queries, relevant to user needs and interests. In one example, the user context includes information about the content accessed by the user using a CE device (e.g., closed caption information for a TV program accessed by the user), and other information on the Internet about that content.

An implementation for CE devices in a local area network (LAN), such as a home network, is described below, however the present invention is useful with other electronic devices, and electronic devices that are not in a LAN but have access to the Internet. FIG. 1 shows a functional architecture of an example network/system 10, such as a LAN of home devices, embodying aspects of the present invention. The network/system 10 comprises devices 20 such as appliances, a personal computer (PC) 21, CE devices 30 which may include content, and an interface 40 that connects the network/system 10 to an external network 50 (e.g., another local network, the Internet). The external network 50 can be connected to one or more servers 51. The network/system 10 can implement the UPnP protocol or other network communication protocols (e.g., Jini, HAVi, IEEE 1394, etc.). The network/system 10 can be a wireless network, a wired network, or a combination thereof. Examples of CE devices include digital televisions (DTVs, PDAs, media players, etc.).

The network/system 10 further includes a related data generator function 25 that can generate keywords. In one example, the user context includes closed caption (CC) information for a TV program accessed by the user, and other information on the Internet about that content. In this example, the related data generator function 25 generates keywords related to a content accessed by a user such a program being watched by a user on a CE device 30 such as a DTV. The related data generator function 25 can also generate keywords based on one or more of: user history (e.g., keywords selected by the user previously), user profile, content previously accessed by the user, etc. The related data generator function 25 can be implemented, e.g., in a stand-alone module, in a device 20 such as a set-top box or in a CE device 30 such as a DTV. A user interface (UI) can be displayed on a device in the network/system 10 capable of displaying information, such as a CE device 30.

The network/system 10 further includes a query suggestion function 27 that suggests search queries (and/or refinements to already suggested queries) based on content accessed and based on related information on the Internet. The query suggestion function 27 reduces user effort in entering or refining a search query using a remote control type input device such as a remote control 31 for the DTV 30. The query suggestion function 27 provides suggestions when the user attempts to enter a new query, or refine a suggested query. The user can use a remote control input device to select among suggested queries and thereby auto-complete a query.

FIG. 2 shows an architecture 60 in which the related data generator function 25 and the query suggestion function 27 are implemented in an information gathering component 23 (such as a software module in a CE device), according to an embodiment of the present invention. The architecture 60 provides support for suggesting/refining queries via a user interface provided by a client module 64 that, in this example, is implemented in a CE device such as the DTV 30.

In one example, the client module 64 enables the user to obtain desired information from, e.g., the Internet using a simple and intuitive Graphical User Interface (GUI) application, including:

1. Mapping the functionalities that support information search to a small number of keys (e.g., mapping such functionalities to a few keys of a TV remote control 31, as an example for receiving user input when using a DTV 30 for information access).

2. Enabling the user to express interest in obtaining additional information related to information currently accessed by the user (e.g., providing an info button on the remote control 31 for the user to press, and mapping this action into a “more info” request, etc.).

3. Enabling the user to indicate the specific type of additional information the user is looking for, after the user has expressed interest in accessing additional information. An example involves displaying a set of keywords related to the data that the user has expressed interest in (e.g., a TV program or media content the user is accessing). Then, providing a combination of keys (e.g., up/down/right/left arrow keys) on a remote control 31 for the user to select one of the keywords as a search query.

4. Enabling the user to refine or edit a suggested keyword/search query, such as by displaying a set of additional query suggestions that contain, or are related to, the selected keyword and providing a combination of the arrow keys (up/down/right/left arrows) on the remote control 31 for the user to select one of the query suggestions. The GUI allows the user to refine the search queries as many times as the user desires by just repeating the process described above. Further, the query suggestions are displayed in an editable text box that allows the user to delete existing characters or enter new characters to modify the query as desired. This can be performed using e.g., a wireless keyboard or a remote control that has a inbuilt keypad.

5. Performing a search based on a formulated query. Then enabling the user to access the search results by displaying a list of search results corresponding to the keyword previously selected by the user. Then, providing a combination of arrow keys (up/down/right/left arrows) on the remote control device 31 for the user to select one of the refined search results. An example of a search result includes a link to a web page containing information about the search query, wherein the title of the web page is displayed to the user on the GUI.

The user utilizes the client module 64 to access certain content, and the related data generator function 25 obtains information related to the accessed content for display to the user. The user then requests that the information gathering component 23 provide more information about the accessed content. For example, the user utilizes the client module 64 to request that the information gathering component 23 provide more information from Internet data sources 66 about a pre-recorded/broadcast TV program the user is watching on the DTV 30.

Using the client module 64, the user can choose, edit or enter new queries (such as the suggested keywords/categories) with minimal effort on a CE device that may not have a keyboard/mouse. Specifically, the query suggestion function 27 suggests and displays queries including keywords related to the TV program and information categories related to those keywords. Using the suggested keywords and categories as search queries, users can seamlessly browse/search for related information available on the Internet through their CE devices by simply selecting among the suggested queries for searching. The query suggestion function 27 identifies many relevant search queries, and allows the user to edit a suggested query or enter a new query.

Example processes for generating related data and query suggestion, implemented by the information gathering component 23 according to the present invention, are described below. FIG. 3 shows an example of the information gathering component 23 of the architecture 60, configured for TV hardware or a set-top box platform, for suggesting/refining queries. A related data generator function 35 obtains information related to accessed content for display to the user via the client module 64. The client module 64 further allows the user to request more information about the accessed content. A query suggestion function 37 provides more information by implementing query suggestion/refinement, as described below.

In the example shown in FIG. 3, the information gathering component 23 includes a Correlation Framework (CF) 106 that implements the related data generator function 35 and the query suggestion function 37. The CF 106 provides interfaces and functionalities for use by the related data generation function 35 and the query suggestion function 37, to obtain information related to accessed content and resolve user requests for various types of information obtained by data extraction functions 108 from the local sources 69 and Internet sources 66. Local information includes information available on local sources 69 such as devices 20, 21, 30, in the network/system 10 (FIG. 1). Internet information includes information available on the Internet sources 66 which can be obtained via search engines, web sites, etc., described in more detail further below.

Said interfaces and functionalities of the CF 106 are implemented by a Query Execution Planner (QEP) 118, a Plan Library 124, a Correlation Plan Executor (CPE) 120, one or more RuleLets 126 and an Information Source Directory 127.

The QEP 118 provides interfaces between the related data generation function 35 and the query suggestion function 37, and various functions of the CF 106. The Plan Library 124 includes various plans described, e.g., in simple XML-like format. Each QEP interface is associated with a particular plan; when a QEP interface is called (e.g., executed by the module 64 or the functions 35, 37), the QEP 118 passes on the associated plan to the CPE 120 along with any data passed on by the calling function/module. The CPE 120 executes the plan passed on by the QEP 118 using data extraction functions (plug-ins) 108.

A plan specifies the steps to be executed in order to resolve a particular type of query. A plan-step in a plan specifies a routine (i.e., a RuleLet 126) to be executed and optionally specifies the type of required data and the scope of the output result (e.g., whether the data required should be from the Internet sources 66 and/or the local sources 69). The RuleLets 126 are specialized processes that execute a specific task (e.g., obtaining data from the data extraction plug-in, merging data obtained from different data extraction plug-ins, etc.). A workspace 121 is used by the CF 106 to temporarily store the results of executing each plan-step in a plan and input to subsequent steps as needed. The Information Source Directory 127 maintains information about which data extraction plug-in (DEP) 108 should be used to extract a particular type of data.

The DEP 108 provides functionalities to extract data from different sources including the local sources 69 (e.g., home devices (media) repository) and the Internet sources 66. The DEP 108 includes an Unstructured Data Extractor & Analyzer (UDEA) 102, a Semi-Structured Data Extractor & Analyzer (SSDEA) 104, a Structured Data Extractor & Analyzer (SDEA) 110, a Broadcast Data Extractor & Analyzer (BDEA) 112 and a Local Content Gatherer (LCG) 114.

The UDEA 102 provides functionalities to extract data from general websites on the Internet via Internet search engines such as Google, Yahoo, etc. In one example, when a user selects a keyword from related information displayed by the client module 64, the keyword is passed to the CF 106, and the CF 106 provides the keyword to the UDEA 102 for data extraction. The UDEA 102 passes the selected keyword to a search engine (e.g., API provided by the “Yahoo” search engine) in the Internet data sources 66, to obtain related web-links for the selected keyword and returns the search results to the CF 106 for further processing or for providing to the user.

The SSDEA 104 provides functionalities to extract data from the Internet sources 66 (such as zap2it, the Internet Movie Database (IMDb)) that provide semi-structured data (e.g., an electronic program guide (EPG)). The SDEA 110 provides functionalities to extract data from Internet sources (e.g., a compact disk database (CDDB)) that provide structured music metadata. The BDEA 112 provides functionalities to extract and analyze closed-caption data from broadcast TV programs using Broadcast Unstructured Data Sources 67. The LCG 114 provides functionalities to extract and aggregate content (audio, video) available on local sources 69 (e.g., meta-data information on one or more home devices).

Generating Related Data

The related data generation function 35 coordinates the process for determining terms, including keywords and/or phrases, related to content accessed by the user (e.g., a TV program), and displaying the related data on a user interface of the client module 64 for the use to select among the terms for further information. In one example, the client module 64 is implemented in the DTV 30, such that when a user presses the “Info” button on the DTV remote control 31 (while watching a TV program on the DTV 30), the client module 64 requests the related data generation function 35 of the information gathering component 23 for terms related to the TV program. The related data generation function 35 invokes a getRelatedKeywords( ) interface in the QEP 118 for such terms. Consequently, the QEP 118 looks to its Plan Library 124 to identify the appropriate plan to execute in order to resolve the request from the related data generation function 35. An example of an identified plan is getRelatedKeywords.xml in Table 1 below:

TABLE 1 getRelatedKeywords.xml <?xml version=“1.0” ?> <plan>  <planstep>  <RuleLet>GetDataRule</RuleLet>  <OutputType>CCKeywords</OutputType>  <Scope>Local</Scope>  </planstep> </plan>

The QEP 118 then passes on the above-identified plan to the CPE 120 for execution. The plan triggers the invocation of a RuleLet 126 (e.g., “GetDataRuleLet”). Based on the output type set in the plan (e.g., closed-caption keywords or “CCKeywords”), the GetDataRuleLet first identifies (from the Information Source Directory 127) that the BDEA 112 is to be used to extract the required data (terms). Then, a query object is constructed using the fields in the plan and any input parameters passed on by the QEP 118. The constructed query object has the following fields: with input set as “none”, output set as “CCKeywords” and scope set as “local.” Then, the CPE 120 passes on the query object to the BDEA 112 for data extraction using the DEP 108 according to the query object fields, which returns a list of terms to the CPE 120. The extracted/obtained terms are related to the content being accessed by the user (e.g., a currently broadcasted TV program). The extracted terms are displayed as a list in a keyword menu UI 64A by the client module 64 as suggestions of information the user may be interested in because they relate to the content being accessed by the user. The CPE 120 returns this list of keywords to the client module 64 through the QEP 118.

A search for information related to the extracted terms is conducted under direction of the related data generation function 35 and the search results are displayed to the user on the search results menu UI 64B of the client module 64. Specifically, the related data generation function 35 requests the QEP 118 for Internet search results related to the first term on the list. For example, the getRelatedInternetLinks( ) interface of the QEP 118 is invoked with the first term (e.g., “Canadian”) as the input parameter for the interface. Consequently, the QEP 118 looks to its Plan Library 124 to identify the appropriate plan to execute (e.g., getRelatedInternetLinks.xml) in order to resolve the request. The QEP 118 passes the plan to the CPE 120 for execution. An example of getRelatedInternetLinks.xml plan is in shown Table 2 below:

TABLE 2 getRelatedInternetLinks.xml   <?xml version=“1.0” ?>   <plan>    <planstep>     <RuleLet>GetDataRule</RuleLet>      <OutputType>SponsoredLinks</OutputType>      <Scope>SamsungServer</Scope>    </planstep>    <planstep>      <RuleLet>GetDataRule</RuleLet>     <OutputType>SearchResults</OutputType>     <Scope>Internet</Scope>    </planstep>    <planstep>     <RuleLet>MergeDataRule</RuleLet>     <InputType>SamsungServer- SponsoredServices</InputType>     <InputType>Internet- SearchResults</InputType>     <OutputType>InternetLinks</OutputType>      <Scope>CIWorkspace</Scope>    </planstep> </plan>

The first step in the plan triggers the invocation of a RuleLet (e.g., “GetDataRuleLet”). Based on the output type set in the plan-step, the GetDataRuleLet first identifies (from the Information Source Directory 127) that an extraction plug-in 29 is to be used to extract the required data. Then, a query object is constructed using the fields in the plan and any input parameters passed on by the QEP 118 (“Canadian” in this case). Then the CPE 120 passes on the query object to the plug-in 29. The plug-in 29 obtains all available links for the keyword passed as input (i.e., “Canadian”) from the Internet data sources 66. The CPE 120 stores the obtained list of links in its workspace 121 and executes the next step in the plan.

The second step in the plan triggers the invocation of the “GetDataRuleLet” again. Based on the output type and scope set in the plan-step (e.g., “SearchResults” and “Internet” in this case), the GetDataRuleLet identifies (from the Information Source Directory 127) that the UDEA plug-in 102 is to be used to extract the required data. Then, a query object is constructed using the fields in the plan and any input parameters passed on by the QEP 118 (i.e., “Canadian”). The constructed query object has the following fields: input set as “Canadian”, output set as “SearchResults” and scope set as “Internet.” Then, the CPE 120 passes on the query object to the UDEA plug-in 102 which queries a search engine with the keyword passed as input (“Canadian”), and provides to the CPE 120 search results returned by the search engine. In one example, the Yahoo search engine is used to obtain the top 20 search results for a keyword.

The CPE 120 stores the search results in its workspace 121 and executes the next step in the plan. The third step in the plan triggers the invocation of the “MergeDataRuleLet”. Based on inputTypes set in the plan-step, the MergeDataRuleLet retrieves the data with specified type “Local” and data with type “Internet-SearchResults” from the workspace 121, merges them and passes the merged result (i.e., a list of Internet links and search results) to the client module 64 (via the CPE 120, the QEP 118 and the related data generation function 35).

Upon receiving the merged results, including a list of Internet links comprising sponsored links and search results, the client module 64 displays the list of Internet links on a user interface 64B with the list of keywords related to the TV program, and the related Internet links.

Suggesting Search Queries

If the user selects a keyword from the list of keywords related to the currently broadcasted TV program (i.e., the list of keywords returned above by the BDEA plug-in 112), the client module 64 requests the information gathering component 23 for search results for the currently selected keyword.

FIGS. 4A-C show example user interface screens, according to the present invention. FIG. 4A shows an initial keyword menu 64A. FIG. 4B shows a query suggestion menu 64C for a selected keyword from keyword menu 64A. FIG. 4C shows the keyword menu 64A updated with a query suggestion selected by the user from the query suggestion menu in 64B in FIG. 4B.

Specifically, FIG. 4A shows an example UI screen, wherein a user is watching a program on American and Canadian troops in Iraq, wherein the keywords “Iraq”, “President Bush”, “American troops”, and “Canadian” are listed. The query suggestion function 37 coordinates forming and suggesting queries that are relevant to a keyword selected by the user. When a user chooses a keyword displayed on the keyword menu 64A (e.g., “Canadian”) and presses, e.g., an “edit” button on the TV remote control 31, the client module 64 requests the query suggestion function 37 for more related keywords that start with the selected keyword “Canadian”. The query suggestion function 37 invokes a getKeywordsStartingWith (chosenKeyword) interface of the QEP 118 for such related keywords. The QEP 118 then passes the keyword “Canadian” as the parameter for said interface to look up in its plan library 124 to identify the appropriate plan to execute (getKeywordsStartingWith.xml), in order to resolve the user request. An example of the plan (getKeywordsStartingWith.xml) is shown in Table 3 below:

TABLE 3 getKeywordsStartingWith.xml   <?xml version=“1.0” ?>   <plan>    <planstep>     <RuleLet>GetDataRule</RuleLet>     <OutputType>CCKeywordPhrases</OutputType>     <Scope>Local</Scope>    </planstep>    <planstep>     <RuleLet>GetDataRule</RuleLet>    <OutputType>SnippetKeywordPhrases</OutputType>     <Scope>Internet</Scope>    </planstep>    <planstep>   <RuleLet>MergeDataRule</RuleLet>    <InputType>Local-CCKeywordPhrases </InputType>    <InputType>Internet- SnippetKeywordPhrases</InputType>   <OutputType>KeywordIndex</OutputType>      <Scope>CIWorkspace</Scope>    </planstep>   </plan>

The QEP 118 then passes the plan in Table 3 to the CPE 120 for execution. The CPE 120 parses the plan for execution, wherein the first step in the plan triggers the invocation of the “GetDataRuleLet.” Based on the output type set in the plan-step (i.e., “CCKeywordPhrases” in this case), the GetDataRuleLet first identifies (from the Information source directory) that the BDEA plug-in 112 should be used to extract the required data. Then, a query object is constructed using the fields in the plan and the input parameters passed on by QEP 118 (e.g., keyword “Canadian”). The constructed query object has the following fields: with input set as “keyword=Canadian”, output set as “CCKeywordPhrases”, scope set as “local.” Then the query object is passed on to the BDEA 112.

On receiving the query, the BDEA 112 identifies all keywords and phrases containing the word “Canadian” from its internal indexes/modules. In one example, the BDEA 112 retrieves all the phrases containing the word “Canadian” (e.g., “Canadian government”, “Canadian troops”, etc.) from its local index 33A. Finally, the BDEA 112 returns the list of obtained keywords and phrases to the CPE 120. The LCG 114 also has a local index 33B.

The CPE 120 stores the obtained list of keywords/phrases in its workspace with type set as “Local-CCKeywordPhrases”and executes the second step in the plan in Table 3. The second step in the plan triggers the invocation of the “GetDataRuleLet” again. Based on the output type set in the plan-step (i.e., “SnippetKeywordPhrases”), the GetDataRuleLet first identifies (from the Information source directory) that the UDEA plug-in 102 should be used to extract the required data. Then, a query object is constructed using the fields in the plan and the input parameters passed on by the QEP 118 (e.g., “Canadian”). The constructed query object includes the following fields: with input set as “keyword=Canadian”, output set as “SnippetKeywordPhrases”, scope set as “Internet.” The query object is passed to the UDEA 102.

On receiving the query object (i.e., request), the UDEA 102 sends the keyword in the query (i.e., “Canadian”) to a search engine in the Internet sources 66 for searching. The UDEA 102 obtains snippets for the search results provided by the search engine, and analyzes the snippets to extract useful keywords and phrases (e.g., “history”, “people”, “troops”, etc.), and stores them in a search index 39 along with the original query (e.g., “Canadian history”, “Canadian people”, “Canadian tourism”). Finally, the UDEA 102 returns the identified keywords and phrases as related query suggestions to the CPE 120.

The CPE 120 stores the search results in its workspace with type set as “Internet-SnippetKeywordPhrases” and executes the third step in the plan in Table 3. The third step in the plan triggers the invocation of the “MergeDataRuleLet.” Based on inputTypes set in the plan-step, MergeDataRuleLet retrieves the data with type “Local-CCKeywordPhrases” and data with type “Internet-SnippetKeywordPhrases” from the workspace, merges them and passes it on to the QEP 118. The QEP 118 in turn passes on the merged results containing the selected/chosen keyword “Canadian” (e.g., “Canadian government”, “Canadian troops”, “Canadian history”, “Canadian people”, “Canadian tourism” etc.) to the query suggestion function 37. Under the control of the query suggestion function 37, the client module 64 displays the merged results as a list of keyword/phrase suggestions related to the chosen keyword “Canadian” on a user interface (UI) for user interaction (e.g., query suggestion menu 64C in FIG. 4B). Alternatively, the query suggestion function 37 and/or client module 64 may pass the merged results as a list of keyword/phrase suggestions to a supplementary UI on another client device.

Upon being presented with a list of results as suggestions in the query suggestion menu 64C (FIG. 4B), if the user finds a suggested query (e.g., “Canadian government”) interesting, the user can select the query via the client module 64 for execution and review of search results. FIG. 4C shows an example UI screen, wherein “Canadian government” is selected and the user is presented with a list of search results in the search result menu 64B for the user-selected query suggestion, “Canadian government”.

In another example, based on NLP (Natural Language Processing) techniques and a dictionary, the root of a word can be used (e.g., the root of the word Canadian is Canada), such that when the user requests for query suggestions, the system obtains suggestions for the actual word (e.g., Canadian) and the root word (e.g., Canada).

FIG. 5 shows a flowchart of the steps of an information gathering process 150 for the information gathering component 23, including related data generation and query suggestion, according to an embodiment of the present invention. In an example scenario, a user watching a program (e.g., recorded video or a broadcasted TV program) on the DTV 30, and using the “Info” button of the remote control 31 requests the client module 64 UI to display keywords related to the program. The UI of the client module passes the selected keyword to the related data generation function 35 and in response, the related keyword generation function 35 determines that a set of terms including keywords and search results (e.g., “Iraq”, “President Bush”, “American troops”, “Canadian”, etc.) are related to the TV program currently watched by the user, and displays the terms to the user on a UI via the client module 64 of the DTV 30 (Step 151).

The user then selects one of the terms (e.g., “Canadian”) and requests the client module 64 to edit the term by pressing the “Edit” button on the remote control 31 (Step 152). The UI of the client module passes the selected term to the query suggestion function 37 (Step 153). Then, in steps 154-157, the query suggestion function 37 then obtains key terms comprising keywords/phrases that contain the selected term, from local and Internet sources using the plug-in functions of the DEP 108. In obtaining key terms, the query suggestion function takes into consideration both local content available from the home devices (e.g., metadata, closed caption information) and the related information available on the Internet sources.

Specifically, the query suggestion function 37 uses the BDEA 112 to obtain key terms including keywords/phrases that contain the term selected by the user for editing, from locally available content information (e.g., from data sources 67 providing metadata, closed-captions/subtitles and/or an EPG) for the content being accessed by the user (Step 154). The query suggestion function 37 further uses one or more of the SSDEA 104, SDEA 110 and UDEA 102, to obtain key terms comprising keywords/phrases that contain the selected term, from Internet search result snippets returned by the Internet sources 66 (Step 155). The query suggestion function 37 further uses the BDEA 112 and/or the LCG 114 to obtain key terms comprising keywords/phrases that contain the selected term, from the local index of metadata related to media content available in the home network 10 (Step 156). The query suggestion function 37 further uses the LCG 114 to obtain key terms comprising keywords/phrases containing the selected term, based on user-related information such as user profile, user preferences, content previously accessed by the user, history of keywords chosen by the user in the past, which contain the selected term, etc., that are indicative of user interests (Step 157).

The query suggestion function 37 then aggregates the obtained key terms related to the selected term, and ranks them such as based on user history and preferences (Step 158). The UI of the client module 64 then displays the ranked key terms to the user as query suggestions corresponding to the selected term (Step 159). The user can select among the suggested queries for execution (e.g., searching and view of search results), or further refinement by selecting a suggested query and pressing “Edit” on the remote control 31 repeating steps 152-159.

The process 150 allows searching for Internet information on CE devices that do not have a keyboard or a mouse. It allows users to access/browse Internet information related to content they access, without having to enter queries. The keyword menu 64A (FIG. 3) in the UI of the client module displays a list of terms related to the accessed content (e.g., video being currently watched), the user selects one or more terms from the keyword menu (i.e., selected keyword or category) as a query for searching, and a list of search results corresponding to the search query specified by the user are obtained and displayed in a search results menu 64B of the UI display.

The client module may support different types of user interfaces to allow users to edit a term. One example involves highlighting a term for editing in the UI, and allowing the user to enter new characters in the highlighted segment 64D in FIG. 4B. Another example involves displaying a selected term in an editable text box on the top part of the same UI, for editing. The edited term can be executed as a query.

The client module may support different types of user interfaces to allow users to browse/choose from the query suggestions. One example involves displaying auto-complete query suggestions for the selected term (e.g., FIG. 4B). Another example involves displaying auto-complete query suggestions for the selected term on a UI of another client module (e.g., on a supplementary device).

An example operation scenario for a user, John, based on the embodiments illustrated in FIGS. 3-4, includes the following steps:

-   -   a) John powers on his DTV 30 and starts watching a program about         American and Canadian troops in Iraq on a TV channel that         provides closed-captions for the program.     -   b) John presses the “Info” button on the remote control (RC) 31         of the DTV, requesting more information about the program.     -   c) The client/UI 64 on the DTV passes on John's request to the         information gathering function 23 (i.e., related data generation         function 35 in the CF 106).     -   d) Under direction of the related data generation function 35,         the CF 106 utilizes the BDEA 112 to identify terms related to         the program, and returns them to the client module 64.     -   e) The client module 64 displays the related terms returned by         the CF 106 to the user in the keyword menu 64A on the DTV         screen, as suggested related information. In this example, the         client module 64 displays the following list of terms returned         by the CF 106, “Iraq”, “President Bush”, “American troops” and         “Canadian”, as shown in FIG. 4A.     -   f) John realizes the query he had in mind (which is “Canadian         government”) is not in the list of terms related to the program         that is displayed in the keyword menu 64A.     -   g) John selects the term “Canadian” in the keyword menu 64A and         presses the “Edit” button on the RC 31.     -   h) The client module 64 passes on the selected term “Canadian”         to the CF 106, to request more suggestions. As described below,         the BDEA 112 obtains the closed-captions text for the program         and the UDEA 102 obtains snippets containing the selected term         through Internet search engines.     -   i) Under direction of the query suggestion function 37, the CF         106 passes on the selected term “Canadian” to the BDEA 112 to         obtain more keywords and phrases containing the selected term         “Canadian” from the closed-captions of the TV program John is         watching. In this example, the BDEA 112 returns the following         keywords/phrases to the CF 106: “Canadian troops”, “Canadian         president”, and “Canadian government.”     -   j) Under direction of the query suggestion function 37, the CF         106 also passes on the selected term “Canadian” to the UDEA 102         to obtain more keywords and phrases containing the selected term         “Canadian”, from Internet search result snippets corresponding         to the selected term. In this example, the UDEA 102 returns the         following keywords/phrases to the CF 106: “Canadian history”,         “Canadian people”, “Canadian tourism”, “Canadian idol”.     -   k) Under direction of the query suggestion function 37, the CF         106 also passes on the selected term “Canadian” to the Local         Content Gatherer (LCG) 114 to obtain more keywords and phrases         containing the selected term “Canadian” from John's profile,         preferences and history of keywords chosen by John. In this         example, the LCG 114 returns the following keywords/phrases to         the CF 106: Canadian government, Canadian idol.     -   l) The query suggestion function 37 aggregates the         keywords/phrases obtained in steps j-l and ranks them based on         John's history of chosen keywords. In this example, the ranked         list of aggregated keywords/phrases includes: “Canadian         government”, “Canadian idol”, “Canadian troops”, “Canadian         president”, “Canadian history”, “Canadian people”, “Canadian         tourism”.     -   m) The CF 106 returns the above aggregated list—complete         suggestions to the client/UI 64.     -   n) The client/UI 64 displays the suggestions to the user in a         query suggestions menu 64C (e.g., FIG. 4B). The first query         suggestion 64D is automatically highlighted and allows John to         enter or delete any characters.     -   o) John is happy to see the query he had in mind (“Canadian         Government”) in the suggestion list 64C and selects it to obtain         more information about Canadian government as search results in         menu 64B, as shown in FIG. 4C.     -   p) Upon John's selection, the keyword menu 64A is updated to         show “Canadian Government” as the highlighted keyword and search         results related to this keyword are shown in menu 64C in FIG.         4C.

The remote control 31 may include an alphabetic or alphanumeric keypad for text entry. Alternatively, the remote control may be an essentially conventional remote control and the client displays a keyboard map on the screen for the user to select characters from, or the client may display a UI on another device in the network (e.g., cell phone or a tablet PC) that has a keypad and allows for editing text.

FIG. 6 shows a functional block diagram of another example information gathering component 200 for suggesting search queries, according to the present invention. Specifically, FIG. 6 shows an example of the information gathering component 23 of the architecture 60 (FIG. 2), configured for TV hardware or a set-top box platform, for suggesting/refining queries. In FIG. 6, the related data generation function and the query suggestion function are implemented as query plans in the plan library 124 for access and execution by the QEP 118. The plan library 124 specifies plans for the related data generation function and the query suggestion function, and the client module 64 can request the QEP 118 for related data or query suggestions, and QEP executes the corresponding plans.

For example, a plan specifies the steps to obtain related data, and the QEP executes this plan (using the underlying Data Extraction plug-ins). The search for related information is conducted if the user chooses a keyword through the client module and the client module invokes a QEP interface 119 to obtain related information (links) while passing on a user-selected keyword. The QEP returns related data and query suggestions directly to the client module. The related data generation function and the query suggestion function can be implemented by the Data Extraction plug-ins 108.

As is known to those skilled in the art, the aforementioned example architectures described above, according to the present invention, can be implemented in many ways, such as program instructions for execution by a processor, as logic circuits, as an application specific integrated circuit, as firmware, as a program product stored on a computer useable medium for execution on a processor (e.g., CPU, microcontroller), etc. The present invention has been described in considerable detail with reference to certain preferred versions thereof; however, other versions are possible. Therefore, the spirit and scope of the appended claims should not be limited to the description of the preferred versions contained herein. 

1. A method for suggesting search queries on an electronic device, comprising: receiving a request to access content from a user, wherein the content is a television program; accessing information about the television program; extracting, from the information about the television program, a first set of key terms related to the content currently accessed by a user by the electronic device without requiring user input; displaying the first set of key terms for selection by the user; receiving a selection of one of the key terms from the first set of key terms from the user; automatically obtaining a second set of key terms related to the user selected key term from the first set of key terms, based on both local content information from available local content and search result snippets from external content information; aggregating and ranking the key terms from the second set of key terms; displaying the second set of key terms based on rank to the user as query suggestions corresponding to the selected term; receiving a selection from the user of one of the query suggestions; and submitting the selected query suggestion as a query to retrieve additional content, wherein the extracting, displaying, automatically obtaining, aggregating, and displaying are all performed prior to a query being submitted.
 2. The method of claim 1, wherein extracting a first set of key terms includes automatically obtaining key terms from one or more of closed-captions, subtitles and Electronic Program Guide (EPG), for the content.
 3. The method of claim 1, wherein extracting a first set of key terms includes obtaining key terms from a local index of metadata related to the content.
 4. The method of claim 1, wherein extracting a first set of key terms includes obtaining key terms from user-related information.
 5. The method of claim 4, wherein the user-related information includes one or more of: user profile, user preferences, content previously accessed by the user, terms previously selected by the user.
 6. The method of claim 1, wherein the electronic device comprises a consumer electronics (CE) device.
 7. The method of claim 1, wherein the aggregated key terms are ranked based on user-selected search term history and user preferences.
 8. The method of claim 1, wherein extracting initial terms related to content accessed by a user comprises extracting initial terms from content accessed by the user.
 9. The method of claim 8, wherein extracting initial terms from content accessed by the user comprises extracting initial terms based on locally available content information.
 10. The method of claim 9, wherein the locally available content information comprises closed-caption information.
 11. The method of claim 1, wherein the electronic device is a digital television (DTV).
 12. The method of claim 11, wherein the query suggestions corresponding to the selected term are displayed on the DTV.
 13. The method of claim 12, wherein a user selects search terms via a remote control without entering query terms.
 14. An apparatus for suggesting search queries on an electronic device, comprising: a processor including a related data generation function configured for initiating extraction of initial terms related to content of a television program currently accessed by a user by the electronic device without requiring user input, displaying the initial terms for selection by the user, and receiving a selection of a term from the initial terms from the user; a query suggestion function configured for automatically obtaining key terms related to a selected term selected from the initial terms, based on both local available content information and search result snippets from external content information, aggregating and ranking the key terms, and for displaying the key terms based on rank to the user as query suggestions corresponding to the selected term; and a query submission module configured for submitting at least one of the query suggestions as a query for additional content, wherein the extraction, displaying the initial terms, automatically obtaining, aggregating, and displaying the key terms are all performed prior to a query being submitted.
 15. The apparatus of claim 14, wherein the query suggestion function includes: a local information extractor configured for obtaining key terms related to the selected term based on locally available content information; an external information extractor configured for obtaining key terms related to the selected term based on information available on external sources; and the apparatus further including an aggregation function configured for aggregating the obtained key terms for display as query suggestions.
 16. The apparatus of claim 15, wherein the local information extractor is further configured for obtaining key terms that contain the selected term, from one or more of closed-captions, subtitles and Electronic Program Guide (EPG), for the user accessed content.
 17. The apparatus of claim 15, wherein the local information extractor is further configured for obtaining key terms that contain the selected term, from a local index of metadata related to locally available media content.
 18. The apparatus of claim 15, wherein the local information extractor is further configured for obtaining key terms that contain the selected term, from user-related information.
 19. The apparatus of claim 18, wherein the user-related information includes one or more of: user profile, user preferences, content previously accessed by the user, terms previously selected by the user.
 20. The apparatus of claim 15, wherein the external information extractor is further configured for obtaining key terms that contain the selected term based on information available on Internet sources.
 21. The apparatus of claim 15, wherein the external information extractor is further configured for obtaining key terms that contain the selected term, from Internet search result snippets.
 22. The apparatus of claim 21, wherein obtaining key terms that contain the selected term from Internet search results snippets further comprises: sending the selected term to a search engine in the Internet; obtaining search result snippets for the selected term from the search engine; and analyzing search result snippets for key terms that contain the selected term.
 23. The apparatus of claim 14, wherein the electronic device comprises a consumer electronics (CE) device.
 24. The apparatus of claim 14, further including a client module is configured for providing a user interface for displaying the key terms to the user as query suggestions corresponding to the selected term.
 25. A system for suggesting search queries, comprising: an electronic device including a processor coupled with a client module configured for connection to a local network; an information gathering function configured for suggesting search queries via the client module, the information gathering function comprising a related data generator configured for initiating extraction of initial terms related to content of a television program currently accessed by a user without requiring user input displaying the initial terms for selection by the user, and receiving a selection of initial terms from the user, and a query suggestion function configured for automatically obtaining key terms related to a selected term selected from the initial terms, based on both available local content information and search result snippets from external content information, aggregating and ranking the key terms, and for displaying the key terms based on rank to the user as query suggestions corresponding to the selected term; and a query submission module configured for submitting at least one of the query suggestions as a query for additional content, wherein the extraction, displaying the initial terms, automatically obtaining, aggregating, and displaying the key terms are all performed prior to a query being submitted.
 26. The system of claim 25, wherein the query suggestion function includes: a local information extractor configured for obtaining key terms related to the selected term based on locally available content information; an external information extractor configured for obtaining key terms related to the selected term based on information available on external sources; and the system further including an aggregation function configured for aggregating the obtained key terms for display as query suggestions.
 27. The system of claim 26, wherein the query suggestion function is further configured for ranking the aggregated key terms for display as query suggestions.
 28. The system of claim 26, wherein the local information extractor is further configured for obtaining key terms that contain the selected term, from one or more of closed-captions, subtitles and Electronic Program Guide (EPG), for the user accessed content.
 29. The system of claim 26, wherein the local information extractor is further configured for obtaining key terms that contain the selected term, from a local index of metadata related to locally available media content.
 30. The system of claim 26, wherein the local information extractor is further configured for obtaining key terms that contain the selected term, from user-related information.
 31. The system of claim 30, wherein the user-related information includes one or more of: user profile, user preferences, content previously accessed by the user, terms previously selected by the user.
 32. The system of claim 26, wherein the external information extractor is further configured for obtaining key terms that contain the selected term based on information available on Internet sources.
 33. The system of claim 26, wherein the external information extractor is further configured for obtaining key terms that contain the selected term, from Internet search result snippets.
 34. The system of claim 25, wherein the client module comprises a consumer electronics device configured for providing a user interface for displaying the key terms to the user as query suggestions corresponding to the selected term; and wherein the client module and the information gathering module are further configured for communication via the network.
 35. A program product stored on a computer for suggesting search queries on an electronic device, the program product comprising program code for causing a processor to: initiate extraction of initial terms related to content of a television program currently accessed by a user without requiring user input; display the initial terms for selection by the user; receiving a selection of initial terms from the user; automatically obtain key terms related to a user-selected term selected from the initial terms, based on both available local content information and search result snippets from external content information; aggregate and rank the key terms; display the key terms based on rank to the user as query suggestions corresponding to the selected term; and submit at least one of the query suggestions as a query for additional content, wherein the extraction, displaying the initial terms, automatically obtaining, aggregating, and displaying the key terms are all performed prior to a query being submitted. 